import Vue from 'vue'
import App from './App.vue'

Vue.config.productionTip = false
//1：实现所有组件都可以看到
//在Vue的原型对象上添加全局数据，VM和VC都可以看到
Vue.prototype.t = { a: 1, b: 2 }

//2：实现所有组件可调用事件方法
//$on,$emit,$once等方法都是在VUE原型上的，直接this无法获取到
//需通过手动定义一个VC，并声明对象（作为傀儡），将其放入原型中供全局使用

// const globalVC = Vue.extend();
// Vue.prototype.x = new globalVC


new Vue({
  render: h => h(App),
  //安装全局事件总线，一般叫 $bus（同Java微服务总线），加$是为了迎合Vue的设计（给开发者使用的函数加$）
  //3：优化代码，可直接通过this指定，放在VM上。  但是要使用钩子函数确保第一时间放在Vue原型上
  beforeCreate() {
    Vue.prototype.$bus = this
  }
}).$mount('#app')